package com.jlpay.open.jlpay.sdk.java.model.trans.c2b.request;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.OrgBaseReq;
import com.jlpay.open.jlpay.sdk.java.model.trans.dto.GoodsDataDto;
import com.jlpay.open.jlpay.sdk.java.model.trans.dto.TerminalInfoDto;
import lombok.*;

/**
 *
 * @author dengwenning
 * @since 2024/9/13
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class QrcodePayRequest extends OrgBaseReq {

    /**
     * 商户号
     */
    private String mchId;
    /**
     * 终端号
     */
    private String termNo;
    /**
     * 交易类型
     */
    private String payType;
    /**
     * 外部订单号
     */
    private String outTradeNo;
    /**
     * 订单有效期
     */
    private String paymentValidTime;
    /**
     * 商品标题
     */
    private String body;
    /**
     * 商品描述
     */
    private String attach;
    /**
     * 交易金额
     */
    private String totalFee;
    /**
     * 指定支付方式
     */
    private String limitPay;
    /**
     * 分期标识
     */
    private String isHirePurchase;
    /**
     * 分期标识
     */
    private String hirePurchaseNum;
    /**
     * 卖家承担的手续费比例
     */
    private String hirePurchaseSellerPercent;
    /**
     * 备注
     */
    private String remark;
    /**
     * 回调地址
     */
    private String notifyUrl;
    /**
     * 操作员
     */
    private String opUserId;
    /**
     * 门店号
     */
    private String opShopId;
    /**
     * 终端设备号
     */
    private String deviceInfo;
    /**
     * 交易IP
     */
    private String mchCreateIp;
    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;
    /**
     * 公众账号ID
     */
    private String subAppid;
    /**
     * 订单优惠标记
     */
    private String goodsTag;
    /**
     * 商品详情
     */
    private GoodsDataDto goodsData;
    /**
     * 终端信息
     */
    private TerminalInfoDto terminalInfo;

    @Override
    public String path() {
        return "/open/trans/qrcodepay";
    }
}
